package bean;

import java.util.Date;
import java.util.LinkedList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import sun.net.www.content.text.plain;

import bean.srv.StockSrv;

@Entity
@Table(name="movimiento")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Movimiento {

	@Id
	private Integer id_movimiento_stock;
	private String fecha;
	@OneToMany(cascade = CascadeType.ALL)
	@JoinColumn(name="id_movimiento")
	private List<RenglonMovimiento> renglones;
	
	
	public Movimiento(){
		this.renglones = new LinkedList<RenglonMovimiento>();
	}

	public Integer getId_movimiento_stock() {
		return id_movimiento_stock;
	}

	public void setId_movimiento_stock(Integer id_movimiento_stock) {
		this.id_movimiento_stock = id_movimiento_stock;
	}

	public String getFecha() {
		return fecha;
	}

	public void setFecha(String fecha) {
		this.fecha = fecha;
	}

	public void agregarRenglon(int renglon, Float cantidad, int numeroDeposito) {
		RenglonMovimiento r = new RenglonMovimientoNoValorizado();
		r.setN_renglon(renglon);
		r.setCantidad(cantidad);
		r.setDeposito(this.buscarDeposito(numeroDeposito));
		this.renglones.add(r);
	}

	private Deposito buscarDeposito(int numeroDeposito) {
		return new StockSrv().buscarDeposito(numeroDeposito);
	}

	public List<RenglonMovimiento> getRenglones() {
		return this.renglones;
	}

	public void agregarRenglon(int renglon, Float cantidad, int numeroDeposito, float precio) {
		RenglonMovimiento r = new RenglonMovimientoValorizado(precio);
		r.setN_renglon(renglon);
		r.setCantidad(cantidad);
		r.setDeposito(this.buscarDeposito(numeroDeposito));
		this.renglones.add(r);		
	}

}
